1.5. Creating a Web Application that can be deployed on Heroku 创建能部署在Heroku上面的Web项目
在你的项目里面随意调整pom.xml内的groupId,包号和版本号就可以成为一个新的项目。
此时,已经创建, 符合Maven的项目结构:
- 标准的管理配置文件 :pom.xml
- 原文件路径 :src/main/java
- 资源文件路径 :src/main/resources
- web应用文件 :src/main/webapp
- 原文件测试(基于JerseyTest) :src/test/java
- Heroku系统属性 (OpenJDK版本) :system.properties
该项目包含一个JAX-RS资源类 MyResouce,和一个资源的方法会返回的简单文本。确保资源的正确测试,MyResourceTest 是一个端到端的测试案例(测试是基于,详见 Chapter 24, Jersey Test Framework)。类似simple-service-webapp
项目,在 src/main/webapp/WEB-INF 下,它包含了标准的JavaEE Web 应用的 web.xml 部署描述符,目标是部署在一个 Servlet 容器(本例将运行在 Heroku 的 Jetty 容器)。
项目打包成WAR,执行:
mvn clean package
接下来你可以做:
- 改变项目
- 打包成 WAR 部署到任意 Servlet 容器
- 或者部署到 Heroku(参见下文1.5.1)
提示: 可以执行mvn clean package jetty:run
项目将会部署到内嵌的 Jetty 容器运行 ,或者执行java -cp target/classes:target/dependency/* com.example.heroku.Main
(那是Jetty 在 Heroku 的启动方式)
首先是要注册的账户,这里不展开讲。可以参考Getting Started with Java on Heroku。当你的Heroku环境准备完毕后,接着看下面的步骤:
首先给你的项目创建一个 Git 仓库:
$ git init
Initialized empty Git repository in /.../simple-heroku-webapp/.git/
注意: 默认创建的实例名称是一串随机的字符串类似与 tranquil-basin-4744
,而不一定是你项目名simple-heroku-webapp
。(译者注:当然你可以根据用户自定义实例名称,具体的要参考)
添加并提交到你的 Git 仓库:
$ git add src/ pom.xml Procfile system.properties
[master (root-commit) e2b58e3] initial commit
7 files changed, 221 insertions(+)
create mode 100644 pom.xml
create mode 100644 src/main/java/com/example/MyResource.java
create mode 100644 src/main/java/com/example/heroku/Main.java
create mode 100644 src/main/webapp/WEB-INF/web.xml
create mode 100644 system.properties
将修改推送到 Heroku:
现在你可以访问你的应用了。本例子是http://simple-heroku-webapp.herokuapp.com/myresource